package org.jeecg.modules.wlhy.utils;

import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.modules.api.wlhy.app.InitReturnBean;
import org.jeecg.modules.wlhy.hyconfig.entity.HyConfig;
import org.jeecg.modules.wlhy.hyconfig.service.IHyConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

@Service
public class HyConfigUtils {
    private static boolean isClustered;
    private static HyConfig config = null;
    private static IHyConfigService _hyConfigService;

    public HyConfigUtils(@Autowired IHyConfigService hyConfigService){
        _hyConfigService = hyConfigService;
    }

    @Value(value="${params.isClustered}")
    public void setClustered(boolean st) {
        isClustered = st;
    }

    private static InitReturnBean initReturnBean = null;
    private static InitReturnBean TjinitReturnBean = null;
    private static InitReturnBean AhinitReturnBean = null;
    private static InitReturnBean JsinitReturnBean = null;
    private static InitReturnBean SxinitReturnBean = null;
    private static InitReturnBean SdinitReturnBean = null;

    public static InitReturnBean getSxinitReturnBean() {
        return SxinitReturnBean;
    }

    public static void setSxinitReturnBean(InitReturnBean sxinitReturnBean) {
        SxinitReturnBean = sxinitReturnBean;
    }

    public static InitReturnBean getSdinitReturnBean() {
        return SdinitReturnBean;
    }

    public static void setSdinitReturnBean(InitReturnBean sdinitReturnBean) {
        SdinitReturnBean = sdinitReturnBean;
    }

    public static InitReturnBean getInitReturnBean() {
        return initReturnBean;
    }

    public static void setInitReturnBean(InitReturnBean initReturnBean) {
        HyConfigUtils.initReturnBean = initReturnBean;
    }

    public static InitReturnBean getTjinitReturnBean() {
        return TjinitReturnBean;
    }

    public static void setTjinitReturnBean(InitReturnBean tjinitReturnBean) {
        TjinitReturnBean = tjinitReturnBean;
    }

    public static InitReturnBean getAhinitReturnBean() {
        return AhinitReturnBean;
    }

    public static void setAhinitReturnBean(InitReturnBean ahinitReturnBean) {
        AhinitReturnBean = ahinitReturnBean;
    }

    public static InitReturnBean getJsinitReturnBean() {
        return JsinitReturnBean;
    }

    public static void setJsinitReturnBean(InitReturnBean jsinitReturnBean) {
        JsinitReturnBean = jsinitReturnBean;
    }

    public static HyConfig getConfig(){
        if(isClustered) {
            HyConfig hyConfig = _hyConfigService.getById("1");
            if (hyConfig == null) {
                throw new JeecgBootException("config 不能为空");
            }
            return hyConfig;
        }else {
            return config;
        }
    }
    public static void setConfig(HyConfig cfg){
        config = cfg;
    }
}
